#!/bin/bash

cd /root/Yunzai-Bot
cd Yunzai-Bot
clear
if [ -d "node_modules/icqq/lib/core" ]; then  
   echo -e "\e[1;36m  影宝卖萌中..\e[0m"
else  
   echo -e "\e[1;31m./node_modules/icqq/lib/core文件夹不存在\e[0m"
   echo -e "\e[1;32m请在Yzai根目录启动脚本\e[0m"
   echo -e "\e[1;36mbash <(curl -sL gitee.com/white-night-fox/shadow-treasure-script/raw/master/version.sh)\e[0m"
   exit
fi

# 获取icqq包的依赖关系树，并用awk提取出icqq的那行
result=$(npm list icqq | awk '/icqq/{print $2}')
# 将版本号以.为分隔符分成三部分，存储到数组中
IFS='.' read -ra current_version_parts <<< "$result"
IFS='.' read -ra required_version_parts <<< "0.4.11"
# 将字符型数组转换成数值型数组
for i in "${!current_version_parts[@]}"; do
    current_version_parts[$i]=$(echo "${current_version_parts[$i]}" | sed 's/[^0-9]*//g')
done
for i in "${!required_version_parts[@]}"; do
    required_version_parts[$i]=$(echo "${required_version_parts[$i]}" | sed 's/[^0-9]*//g')
done
# 比较两个版本号的大小，根据比较结果输出不同的消息
version_compare() {
    for i in "${!required_version_parts[@]}"; do
        if [ "${current_version_parts[i]}" -lt "${required_version_parts[i]}" ]; then
            echo "$result，低于要求的版本号 0.6.3"
            echo -e "\e[1;32m  将 ICQQ 更新至 0.6.3\e[0m"
# 规则更新
pnpm update icqq@0.6.3
# 判断是否执行成功
if [ $? -eq 0 ]; then
  echo -e "\e[1;36m  影宝睡觉中..\e[0m"
else 
  sed -i -E 's/"icqq": "[^"]+"/"icqq": "^0.6.3"/' package.json
  echo "" | pnpm install
  # 判断是否执行成功
if [ $? -eq 0 ]; then
:
else
  echo -e "\e[1;31m  影宝笑你两年半~\e[0m"
  read -p "失败了..."
 fi
fi
            return
        elif [ "${current_version_parts[i]}" -gt "${required_version_parts[i]}" ]; then
            echo "$result，高于要求的版本号0.6.3"
            echo -e "\e[1;33m  不太确定你是否需要\e[0m"
            echo -e "\e[1;32m  如果需要请回车\e[0m"
            read -p "按下回车键继续..."
            return
        fi
    done
    echo "$result"
    echo -e "\e[1;33m  版本是正常的\e[0m"
    echo -e "\e[1;32m  回车继续将删除虚拟设备token并切换aPad协议\e[0m"
    read -p "按下回车键继续..."
}
# 调用version_compare函数
version_compare

  # 填写公共签名API
echo -e "\e[1;33m  填写公共签名API\e[0m"

# 设置配置文件路径
config_file="config/config/bot.yaml"

# 检查配置文件中是否已经存在 sign_api_addr
if grep -q "sign_api_addr:" "$config_file"; then
  # 将现有的值替换为新的 URL
  sed -i 's/sign_api_addr:.*/sign_api_addr: https:\/\/qsign.amoe.cc\/api\/sign\/8963/' "$config_file"
else
  # 在配置文件中添加新的值
  last_line=$(tail -n 1 "$config_file")
  if [ -z "$last_line" ]
  then
    echo "sign_api_addr: https://qsign.amoe.cc/api/sign/8963" >> "$config_file"
  else
    echo "" >> "$config_file"
    echo "sign_api_addr: https://qsign.amoe.cc/api/sign/8963" >> "$config_file"
  fi
fi

echo -e "\e[1;33m  删除旧虚拟设备文件 token\e[0m"
rm -rf data/device.json
rm -rf data/icqq
# 指定要查找的文件名
file="config/config/qq.yaml"

# 读取QQ号码
qq=$(grep 'qq:' $file | awk '{print $2}')

# 删除文件
for token_file in "data/${qq}_token" "data/${qq}_token_bak"; do
  if [ -f "$token_file" ]; then
    rm -f "$token_file"
    echo "已删除文件  $token_file"
  else
    echo "文件不存在  $token_file"
  fi
done

sleep 2

echo -e "\e[1;33m  修改登录协议为 aPad 安卓平板\e[0m"
# 首先，需要指定要修改的文件
file="config/config/qq.yaml"
# 然后，指定要替换的内容
old="platform: [0-9]"
new="platform: 2"
# 使用sed命令来替换文件中的内容
sed -i "s/$old/$new/g" $file
sleep 1

exit
